home *** CD-ROM | disk | FTP | other *** search
- #ifndef _HyperXCmd_
- #define _HyperXCmd_
- /*
- © 1987 Apple Computer, Inc.
- All Rights Reserved
- */
-
- typedef struct
- {
- short int paramCount; /* number of arguments */
- Handle params[16]; /* the argument handles */
- Handle returnValue; /* the result of this XCMD */
- Boolean passFlag; /* pass message on? T/F */
- void (*entryPoint)(); /* call back to HyperCard */
- short int request; /* what you want */
- short int result; /* the answer it gives */
- long inArgs[8]; /* args for call back */
- long outArgs[4]; /* returned from call back */
- } XCmdBlock, *XCmdBlockPtr;
-
- typedef unsigned char Str31[32];
- typedef double extended;
-
- /* Result codes
- */
- #define xresSucc 0
- #define xresFail 1
- #define xresNotImp 2
-
- /* Request codes
- */
- #define xreqSendCardMessage 1
- #define xreqEvalExpr 2
- #define xreqStringLength 3
- #define xreqStringMatch 4
- #define xreqSendHCMessage 5
- #define xreqZeroBytes 6
- #define xreqPasToZero 7
- #define xreqZeroToPas 8
- #define xreqStrToLong 9
- #define xreqStrToNum 10
- #define xreqStrToBool 11
- #define xreqStrToExt 12
- #define xreqLongToStr 13
- #define xreqNumToStr 14
- #define xreqNumToHex 15
- #define xreqBoolToStr 16
- #define xreqExtToStr 17
- #define xreqGetGlobal 18
- #define xreqSetGlobal 19
- #define xreqGetFieldByName 20
- #define xreqGetFieldByNum 21
- #define xreqGetFieldByID 22
- #define xreqSetFieldByName 23
- #define xreqSetFieldByNum 24
- #define xreqSetFieldByID 25
- #define xreqStringEqual 26
- #define xreqReturnToPas 27
- #define xreqScanToReturn 28
- #define xreqScanToZero 39
-
- /*
- ** THINK-C prototypes for the glue routines
- */
- extern pascal void SendCardMessage (XCmdBlockPtr, StringPtr);
- extern pascal Handle EvalExpr (XCmdBlockPtr, StringPtr);
- extern pascal long StringLength (XCmdBlockPtr, StringPtr);
- extern pascal Ptr StringMatch (XCmdBlockPtr, StringPtr, Ptr);
- extern pascal void SendHCMessage (XCmdBlockPtr, StringPtr);
- extern pascal void ZeroBytes (XCmdBlockPtr, Ptr, long);
- extern pascal Handle PasToZero (XCmdBlockPtr, StringPtr);
- extern pascal void ZeroToPas (XCmdBlockPtr, char*, StringPtr);
- extern pascal long StrToLong (XCmdBlockPtr, Str31*);
- extern pascal long StrToNum (XCmdBlockPtr, Str31*);
- extern pascal Boolean StrToBool (XCmdBlockPtr, Str31*);
- extern pascal void StrToExt (XCmdBlockPtr, Str31*, extended*);
- extern pascal void LongToStr (XCmdBlockPtr, long, Str31*);
- extern pascal void NumToStr (XCmdBlockPtr, long, Str31*);
- extern pascal void NumToHex (XCmdBlockPtr, long, short, Str31*);
- extern pascal void BoolToStr (XCmdBlockPtr, Boolean, Str31*);
- extern pascal void ExtToStr (XCmdBlockPtr, extended*, Str31*);
- extern pascal Handle GetGlobal (XCmdBlockPtr, StringPtr);
- extern pascal void SetGlobal (XCmdBlockPtr, StringPtr, Handle);
- extern pascal Handle GetFieldByName (XCmdBlockPtr, Boolean, StringPtr);
- extern pascal Handle GetFieldByNum (XCmdBlockPtr, Boolean, short);
- extern pascal Handle GetFieldByID (XCmdBlockPtr, Boolean, short);
- extern pascal void SetFieldByName (XCmdBlockPtr, Boolean, StringPtr, Handle);
- extern pascal void SetFieldByNum (XCmdBlockPtr, Boolean, short, Handle);
- extern pascal void SetFieldByID (XCmdBlockPtr, Boolean, short, Handle);
- extern pascal Boolean StringEqual (XCmdBlockPtr, Str31*, Str31*);
- extern pascal void ReturnToPas (XCmdBlockPtr, Ptr, StringPtr);
- extern pascal void ScanToReturn (XCmdBlockPtr, Ptr*);
- extern pascal void ScanToZero (XCmdBlockPtr, Ptr*);
- extern pascal void DoJsr (XCmdBlockPtr);
-
- #endif _HyperXCmd_
-